;(function(window, $) {

    $.extend({
        /** 
         * 数字千分位格式化 
         * @public 
         * @param mixed mVal 数值 
         * @param int iAccuracy 小数位精度(默认为2) 
         * @return string 
         */
        formatCurrency: function(mVal, iAccuracy) {

            var fTempVar = 0.00; //临时变量  

            var iFraction = 0;   //小数部分  

            var iInter = 0;      //整数部分  

            var aBuffer = new Array(); //输出缓存  

            var bFrag = true;    //保存正负值标记(true:正数)  

            /** 
             * 输出定长字符串，不够补0 
             * @param int sVal 值 
             * @param int iLen 输出的长度 
             */
            function fillZero(sVal, iLen) {

                var sTmp = sVal.toString();

                var sBuf = new Array();

                for (var i = 0, iLoop = iLen - sTmp.length; i < iLoop; i++)
                    
                    sBuf.push('0');

                sBuf.push(sTmp);

                return sBuf.join('');
            };

            if (typeof(iAccuracy) === 'undefined')

                iAccuracy = 2;

            bFrag = (mVal >= 0); //取出正负号  

            fTempVar = (isNaN(fTempVar = parseFloat(mVal))) ? 0 : Math.abs(fTempVar); //强制转换为绝对值数浮点  
            
            //所有内容用正数规则处理  
            iInter = parseInt(fTempVar); //分离整数部分  

            iFraction = parseInt((fTempVar - iInter) * Math.pow(10, iAccuracy) + 0.5); //分离小数部分(四舍五入)  

            do {

                aBuffer.unshift(fillZero(iInter % 1000, 3));

            } while ((iInter = parseInt(iInter / 1000)));

            aBuffer[0] = parseInt(aBuffer[0]).toString(); //最高段区去掉前导0  

            return ((bFrag) ? '' : '-') + aBuffer.join(',') + '.' + ((0 === iFraction) ? '00' : fillZero(iFraction, iAccuracy));
        },
        /** 
         * 将千分位格式的数字字符串转换为浮点数 
         * @public 
         * @param string sVal 数值字符串 
         * @return float 
         */
        unformatCurrency: function(sVal) {
            var fTempVar = parseFloat(sVal.replace(/,/g, ''));
            return (isNaN(fTempVar) ? 0 : fTempVar);
        },
    });

})(window, jQuery);
